// /******************************************************************************************
//  * Import
//  ******************************************************************************************/

// // module
// import _ from 'lodash';
// import {Storage, Session, Time, Gen} from '../../library';
// import {Config} from '../../preset';

// /******************************************************************************************
//  * Export Class
//  ******************************************************************************************/

// export default class Auth {

//     /*------------------------------------------------------------------------------------
// 	 * 外部调用接口
// 	 *-----------------------------------------------------------------------------------*/
//     /**
//      * App启动调用
//      */
//     static startup() {
        
//         // 获取auth信息
//         Storage.get({
//             key: 'profile_auth',

//             // 用户从没来过，生成新的数据分别给Storage和Session
//             empty: ()=> {
//                 this._arriveAnonym();
//             },

//             // 用户来过
//             success: (res)=> {
//                 this._arriveLogin(res);
//             }
//         });
//     }

//     /**
//      * 登录成功
//      * 
//      * @param {Object} auth 必须包含：token，uid
//      */
//     static login(auth) {
//         this._actionLogin(auth);
//     }

//     /**
//      * 退出登录
//      */
//     static logout() {
//         this._actionLogout();
//     }

//     /**
//      * 判断用户是否已经登录
//      * 
//      * @return {Boolean} 已经登录返回true，否则返回false
//      */
//     static isLogin() {
//         let session = Session.get('profile_auth');
//         if (_.isObject(session) && !_.isNil(session.uid)) {
//             if (parseInt(session.uid) > 0) {
//                 return true;
//             }
//         }
//         return false;
//     }

//     /*------------------------------------------------------------------------------------
// 	 * 到达处理器方法
// 	 *-----------------------------------------------------------------------------------*/
//     /**
//      * 首次到达（全新）用户到达处理器
//      */
//     static _arriveAnonym() {

//         // 制作auth基本对象，带有token, uid
//         const auth = {
//             token: Time.get13() + Gen.mixed(3),
//             uid: 0
//         };

//         // 将auth存入session
//         Session.set('profile_auth', Object.assign(auth, Config.app));

//         // 将auth存入storage
//         Storage.set({
//             key: 'profile_auth',
//             value: auth
//         });
//     }

//     /**
//      * 非第一次到达的用户处理器，将auth存入session
//      */
//     static _arriveLogin(auth) {

//         // 如果auth为string（从Storage传递而来）
//         // 将其转换为json，
//         // 如果转换不了，则调用“匿名访问函数处理器”
//         if (_.isString(auth)) {
//             if (typeof JSON.parse(auth) == "object") {
//                 auth = JSON.parse(auth);
//             }
//             this._arriveAnonym(); 
//             return;
//         }

//         // 验证成功，存入session
//         Session.set('profile_auth', Object.assign(JSON.parse(auth), Config.app));       
//     }

//     /*------------------------------------------------------------------------------------
// 	 * 动作处理器方法
// 	 *-----------------------------------------------------------------------------------*/
//     static _actionLogin(auth) {

//         // 将auth存入session
//         Session.set('profile_auth', Object.assign(auth, Config.app));

//         // 将auth存入storage
//         Storage.set({
//             key: 'profile_auth',
//             value: auth
//         });
//     }

//     /**
//      * 退出登录动作
//      */
//     static _actionLogout() {
//         this._arriveAnonym();
//     }

//     /*------------------------------------------------------------------------------------
// 	 * 获取属性的方法
// 	 *-----------------------------------------------------------------------------------*/
//     // static _getArrive() {
//     //     return Time.get13() + Gen.mixed(3);
//     // }
// }
